1

mysql编译安装

添加用户

useradd -s /usr/sbin/nologin -r mysql

下载源码包以及解压
wget https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-boost-5.7.21.tar.gz
tar -zxf mysql-boost-5.7.21.tar.gz
cd mysql-5.7.21
安装扩展依赖
yum remove mariadb-libs

yum install gcc -y
yum install gcc-c++ -y
yum install cmake -y
yum install libaio -y
yum install ncurses-devel -y
创建mysql的安装目录及数据库存放目录
mkdir -p /data/db/mysql
mkdir -p /data/log/mysql
编译安装mysql
cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DSYSCONFDIR=/usr/local/mysql/etc \
-DMYSQL_DATADIR=/data/mysql \
-DWITH_MYISAM_STORAGE_ENGINE=1 \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_PARTITION_STORAGE_ENGINE=1 \
-DWITH_SYSTEMD=1 \
-DWITH_SSL=system \
-DWITH_ZLIB=system \
-DWITH_EMBEDDED_SERVER=1 \
-DENABLED_LOCAL_INFILE=1 \
-DEXTRA_CHARSETS=all \
-DDEFAULT_CHARSET=utf8mb4 \
-DDEFAULT_COLLATION=utf8mb4_general_ci \
-DDOWNLOAD_BOOST=1 \
-DWITH_BOOST=/usr/local/boost

make -j8 && make install
检验是否安装成功
[root@root mysql-5.7.12]#    cd /usr/local/mysql/
[root@root mysql]#    ls
bin      data  include  man         mysql.sock.lock  README  support-files
COPYING  docs  lib      mysql.sock  mysql-test       share
新建目录
mkdir -p /data/db/mysql/
mkdir -p /data/log/mysql/
增加配置文件
mkdir /usr/local/mysql/etc
touch /usr/local/mysql/etc/my.cnf
ln -s /usr/local/mysql/etc/my.cnf /usr/local/etc
修改权限
chown -R mysql:mysql /usr/local/mysql/*
chown -R mysql:mysql /data/db/mysql /data/log/mysql
生成初始化密码

cd /usr/local/mysql

bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/data/db/mysql

bin/mysql_ssl_rsa_setup

vim /data/log/mysql/error.log

查看初始化密码
grep 'temporary password' /data/log/mysql/error.log
将mysql的启动服务添加到系统服务中
cp /usr/local/mysql/usr/lib/systemd/system/mysqld.service /usr/lib/systemd/system

mkdir -p /var/run/mysqld/
chown mysql:mysql /var/run/mysqld

systemctl start mysqld
service mysql start
启动mysql
service mysqld start

检查mysql启动是否正常
service mysqld status 或者 ps -ef | grep mysql

设置mysqld服务开机自启动
systemctl enable mysqld.service

检查mysqld开机自启动是否设置成功
systemctl list-dependencies | grep mysqld
修改mysql密码,以及远程连接权限
 ALTER USER 'root'@'localhost' IDENTIFIED BY 'Studytime%';
use mysql;
select host, user from user;
update user set host = '%' where user = 'root';
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'Studytime%' WITH GRANT OPTION;
FLUSH PRIVILEGES;

super白
161 声望12 粉丝

大数据相关知识、项目研发经验分享。